<?php
include_once("_common.php");

/* INIsecurepay.php
 *
 * 이니페이 플러그인을 통해 요청된 지불을 처리한다.
 * 지불 요청을 처리한다.
 * 코드에 대한 자세한 설명은 매뉴얼을 참조하십시오.
 * <주의> 구매자의 세션을 반드시 체크하도록하여 부정거래를 방지하여 주십시요.
 *  
 * http://www.inicis.com
 * Copyright (C) 2006 Inicis Co., Ltd. All rights reserved.
 */

/**************************
 * 1. 라이브러리 인클루드 *
 **************************/
require("INIpay41Lib.php");

/***************************************
 * 2. INIpay41 클래스의 인스턴스 생성 *
 ***************************************/
$inipay = new INIpay41;

/*********************
 * 3. 지불 정보 설정 *
 *********************/
$inipay->m_inipayHome = dirname($_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF'])."/INIpay41"; // 이니페이 홈디렉터리
$inipay->m_type = "securepay"; 				// 고정 (절대 수정 불가)
$inipay->m_pgId = "INIpay".$pgid; 			// 고정 (절대 수정 불가)
$inipay->m_subPgIp = "203.238.3.10"; 			// 고정 (절대 수정 불가)
/**************************************************************************************************
* m_keyPw 는 키패스워드 변수명입니다. 수정하시면 안됩니다. 1111의 부분만 수정해서 사용하시기 바랍니다.
* 키패스워드는 상점관리자 페이지(https://iniweb.inicis.com)의 비밀번호가 아닙니다. 주의해 주시기 바랍니다.
* 키패스워드는 숫자 4자리로만 구성됩니다. 이 값은 키파일 발급시 결정됩니다.
* 키패스워드 값을 확인하시려면 상점측에 발급된 키파일 안의 readme.txt 파일을 참조해 주십시오.
**************************************************************************************************/	
$inipay->m_keyPw = $mw_cash[cf_inipay_admin];	        // 키패스워드(상점아이디에 따라 변경)
$inipay->m_debug = "true"; 				// 로그모드("true"로 설정하면 상세로그가 생성됨.)
$inipay->m_mid = $mid; 					// 상점아이디
$inipay->m_uid = $uid; 					// INIpay User ID (절대 수정 불가)
$inipay->m_goodName = $goodname;			// 상품명 
$inipay->m_currency = $currency;			// 화폐단위

/*----------------------------------------------------------------------------------------
price 등의 중요데이터는
브라우저상의 위변조여부를 반드시 확인하셔야 합니다.

결제 요청페이지에서 요청된 금액과
실제 결제가 이루어질 금액을 반드시 비교하여 처리하십시오.

설치 메뉴얼 2장의 결제 처리페이지 작성부분의 보안경고 부분을 확인하시기 바랍니다.
적용참조문서: 이니시스홈페이지->가맹점기술지원자료실->기타자료실 의
              '결제 처리 페이지 상에 결제 금액 변조 유무에 대한 체크' 문서를 참조하시기 바랍니다.
예제)
원 상품 가격 변수를 OriginalPrice 하고  원 가격 정보를 리턴하는 함수를 Return_OrgPrice()라 가정하면
다음 같이 적용하여 원가격과 웹브라우저에서 Post되어 넘어온 가격을 비교 한다.

        $OriginalPrice = Return_OrgPrice();
        $PostPrice = $price; 
        if ( $OriginalPrice != $PostPrice )
        {
                //결제 진행을 중단하고  금액 변경 가능성에 대한 메시지 출력 처리
                //처리 종료 
        }

----------------------------------------------------------------------------------------*/
$inipay->m_price = $price;				// 결제금액

$inipay->m_buyerName = $buyername;			// 구매자 명
$inipay->m_buyerTel = $buyertel;			// 구매자 연락처(휴대폰 번호 또는 유선전화번호)
$inipay->m_buyerEmail = $buyeremail;			// 구매자 이메일 주소
$inipay->m_payMethod = $paymethod;			// 지불방법 (절대 수정 불가)
$inipay->m_encrypted = $encrypted;			// 암호문
$inipay->m_sessionKey = $sessionkey;			// 암호문
$inipay->m_url = "http://www.your_domain.co.kr"; 	// 실제 서비스되는 상점 SITE URL로 변경할것
$inipay->m_cardcode = $cardcode; 			// 카드코드 리턴
$inipay->m_ParentEmail = $parentemail; 			// 보호자 이메일 주소(핸드폰 , 전화결제시에 14세 미만의 고객이 결제하면  부모 이메일로 결제 내용통보 의무, 다른결제 수단 사용시에 삭제 가능)

/*-----------------------------------------------------------------*
 * 수취인 정보 *                                                   *
 *-----------------------------------------------------------------*
 * 실물배송을 하는 상점의 경우에 사용되는 필드들이며               *
 * 아래의 값들은 INIsecurepay.html 페이지에서 포스트 되도록        *
 * 필드를 만들어 주도록 하십시요.                                  *
 * 컨텐츠 제공업체의 경우 삭제하셔도 무방합니다.                   *
 *-----------------------------------------------------------------*/
$inipay->m_recvName = $recvname;	// 수취인 명
$inipay->m_recvTel = $recvtel;		// 수취인 연락처
$inipay->m_recvAddr = $recvaddr;	// 수취인 주소
$inipay->m_recvPostNum = $recvpostnum;  // 수취인 우편번호
$inipay->m_recvMsg = $recvmsg;		// 전달 메세지


/****************
 * 4. 지불 요청 *
 ****************/
$inipay->startAction();


/****************************************************************************************************************
 * 5. 결제  결과                                                    						*
 *      													*
 *  1 모든 결제 수단에 공통되는 결제 결과 데이터                                                      		*
 * 	거래번호 : $inipay->m_tid                                       					*
 * 	결과코드 : $inipay->m_resultCode ("00"이면 지불 성공)           					*
 * 	결과내용 : $inipay->m_resultMsg (지불결과에 대한 설명)          					*
 * 	지불방법 : $inipay->m_payMethod (매뉴얼 참조)  								*
 * 	상점주문번호 : $inipay->m_moid										*
 *	결제완료금액 : $inipay->m_resultprice									*
 *																					*
 * 결제 되는 금액 =>원상품가격과  결제결과금액과 비교하여 금액이 동일하지 않다면  *
 * 결제 금액의 위변조가 의심됨으로 정상적인 처리가 되지않도록 처리 바랍니다. (해당 거래 취소 처리) *
 *																									*
 *														*
 *  2. 신용카드,ISP,핸드폰, 전화 결제, 은행계좌이체, OK CASH BAG Point 결제 결과 데이터        			*
 *      (무통장입금 , 문화 상품권 포함) 								        *
 * 	이니시스 승인날짜 : $inipay->m_pgAuthDate (YYYYMMDD)            					*
 * 	이니시스 승인시각 : $inipay->m_pgAuthTime (HHMMSS)              					*	 
 *  														*
 *  3. 신용카드 결제 결과 데이터          						                        *
 *														*
 * 	신용카드 승인번호 : $inipay->m_authCode                         					*
 * 	할부기간 : $inipay->m_cardQuota                                 					*
 * 	무이자할부 여부 : $inipay->m_quotaInterest ("1"이면 무이자할부) 					*
 * 	신용카드사 코드 : $inipay->m_cardCode (매뉴얼 참조)             					*
 * 	카드발급사 코드 : $inipay->m_cardIssuerCode (매뉴얼 참조)       					*
 * 	본인인증 수행여부 : $inipay->m_authCertain ("00"이면 수행)      					*
 *      각종 이벤트 적용 여부 : $inipay->m_eventFlag                    					*
 *	                                                                                                        *
 *      ** 달러결제 시 통화코드와  환률 정보 **                                                                 *
 *	해당 통화코드 : $inipay->m_ReqCurrency                                                                  *
 *	환율 : $inipay->m_RateExchange	                                                                        *
 *														*	
 *      아래는 "신용카드 및 OK CASH BAG 복합결제" 또는"신용카드 지불시에 OK CASH BAG적립"시에 추가되는 데이터   * 
 * 	OK Cashbag 적립 승인번호 : $inipay->m_ocbSaveAuthCode           					*	
 * 	OK Cashbag 사용 승인번호 : $inipay->m_ocbUseAuthCode            					*
 * 	OK Cashbag 승인일시 : $inipay->m_ocbAuthDate (YYYYMMDDHHMMSS)   					*
 * 	OCB 카드번호 : $inipay->m_ocbcardnumber			   						*
 * 	OK Cashbag 복합결재시 신용카드 지불금액 : $inipay->m_price1     					*
 * 	OK Cashbag 복합결재시 포인트 지불금액 : $inipay->m_price2       					*
 *	                                                                                                        *
 * 4. 실시간 계좌이체 결제 결과 데이터                                                                          *
 *                                                                                                              *	
 * 	은행코드 : $inipay->m_directbankcode                                                                    *
 *	현금영수증 발행결과코드 : $inipay->rcash_rslt								*
 *	현금영수증 발행구분코드 : $inipay->ruseopt								*
 *														*
 * 5. OK CASH BAG 결제수단을 이용시에만  결제 결과 데이터							*
 * 	OK Cashbag 적립 승인번호 : $inipay->m_ocbSaveAuthCode           					*	
 * 	OK Cashbag 사용 승인번호 : $inipay->m_ocbUseAuthCode            					*
 * 	OK Cashbag 승인일시 : $inipay->m_ocbAuthDate (YYYYMMDDHHMMSS)   					*
 * 	OCB 카드번호 : $inipay->m_ocbcardnumber			   						*
 *														*
 * 6. 무통장 입금 결제 결과 데이터							                        *
 * 	가상계좌 채번에 사용된 주민번호 : $inipay->m_perno              					*
 * 	가상계좌 번호 : $inipay->m_vacct                                					*
 * 	입금할 은행 코드 : $inipay->m_vcdbank                           					*
 * 	입금예정일 : $inipay->m_dtinput (YYYYMMDD)                      					*
 * 	송금자 명 : $inipay->m_nminput                                  					*
 * 	예금주 명 : $inipay->m_nmvacct                                  					*
 *														*	
 * 7. 핸드폰, 전화 결제 결과 데이터( "실패 내역 자세히 보기"에서 필요 , 상점에서는 필요없는 정보임)             *
 * 	전화결제 사업자 코드 : $inipay->m_codegw                        					*
 *														*	
 * 8. 핸드폰 결제 결과 데이터								                        *
 * 	휴대폰 번호 : $inipay->m_nohpp (핸드폰 결제에 사용된 휴대폰번호)       					*
 *														*
 * 9. 전화 결제 결과 데이터								                        *
 * 	전화번호 : $inipay->m_noars (전화결제에  사용된 전화번호)      						*
 * 														*		
 * 10. 문화 상품권 결제 결과 데이터							                        *
 * 	컬쳐 랜드 ID : $inipay->m_cultureid	                           					*
 *														*
 * 11. K-merce 상품권 결제 결과 데이터 (K-merce ID, 틴캐시 아이디 공통사용)                                     *
 *      K-merce ID : $inipay->m_cultureid                                                                       *
 *                                                                                                              *
 * 12. 모든 결제 수단에 대해 결제 실패시에만 결제 결과 데이터 							*
 * 	에러코드 : $inipay->m_resulterrcode                             					*
 * 														*
 * 13.현금영수증 발급 결과코드 (은행계좌이체시에만 리턴)							*
 *    $inipay->m_rcash_rslt                                                                                     *
 *                                                                                                              *
 * 14.틴캐시 잔액 데이터                                							*
 *    $inipay->m_remain_price                                           	                                *
 *														*
 * 15.게임문화 상품권 (SKT 상품권 공통 데이터임)								*
 *	사용 카드 갯수 : $inipay->m_dgcl_cardcount                 					        *
 *														*
 * 16.SKT 상품권 결제 결과 데이터										*
 *	결제 종류 : $inipay->m_sktg_method (C - 카드형, M - 모바일형)						*
 ****************************************************************************************************************/

/*
 *  1. $inipay->m_resultCode    (결 과 코 드)
 *  2. $inipay->m_resultMsg     (결과 메세지)
 *  3. $inipay->m_payMethod     (결 제 수 단)
 *  4. $inipay->m_tid           (거 래 번 호)
 *  5. $inipay->m_moid          (주 문 번 호)
 */

if (!$complete_url)
    $complete_url = "$g4[url]/plugin/cybercash/cash-charge-complete.php";

/*
echo "<div>1. $inipay->m_resultCode    (결 과 코 드)</div>";
echo "<div>2. $inipay->m_resultMsg     (결과 메세지)</div>";
echo "<div>3. $inipay->m_payMethod     (결 제 수 단)</div>";
echo "<div>4. $inipay->m_tid           (거 래 번 호)</div>";
echo "<div>5. $inipay->m_moid          (주 문 번 호)</div>";
exit;
*/

if ($inipay->m_resultCode == '00') // 결제성공
{
    $cl_id = substr($inipay->m_moid, 1, strlen($inipay->m_moid));

    $sql = "select * from $mw_cash[cash_list_table] where cl_id = '$cl_id'";
    $row = sql_fetch($sql);
    if (!$row[cl_status]) {
        $mb = get_member($row[mb_id], "mb_nick");
        mw_cash_pg_complete($row[mb_id], $cl_id, $_POST); // 캐쉬충전
        mw_cash_sms($cl_id); // 문자 통보
    }

    //goto_url($complete_url);
}

/*******************************************************************
 * 7. DB연동 실패 시 강제취소                                      *
 *                                                                 *
 * 지불 결과를 DB 등에 저장하거나 기타 작업을 수행하다가 실패하는  *
 * 경우, 아래의 코드를 참조하여 이미 지불된 거래를 취소하는 코드를 *
 * 작성합니다.                                                     *
 *******************************************************************/
/*
var $cancelFlag = "false";

// $cancelFlag를 "ture"로 변경하는 condition 판단은 개별적으로
// 수행하여 주십시오.

if($cancelFlag == "true")
{
        $inipay->m_type = "cancel"; // 고정
        $inipay->m_msg = "DB FAIL"; // 취소사유
        $inipay->startAction();
        if($inipay->m_resultCode == "00")
        {
                $inipay->m_resultCode = "01";
                $inipay->m_resultMsg = "DB FAIL";
        }
}
*/
?>
<script>
var openwin=window.open("INIpay41/sample/childwin.html","childwin","width=299,height=149");
openwin.close();

<? if ($inipay->m_resultCode == '00') { // 결제성공 ?>
location.href = "<?=$complete_url?>";
<? } else { ?>
alert("결제에 실패했습니다.");
history.go(-1);
<? } ?>
</script>
    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
